<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"            
      xmlns:jb="http://java.sun.com/jsf/composite/componentes"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/pages/core/plantilla/plantillaPrincipal.xhtml">
        <ui:define name="contenido">             
            <h:form onsubmit="return checkSubmit();"  id="frmPrincipal">
                <p:panel id="pnlPrincipal" header="#{i18n['panel.titulo.cliente']} / #{sessionMBean.titulo} #{clienteMBean.dto.id}" style="#{applicationMBean.estiloTitulo}">
                    <h:panelGrid id="pgFormDto" columns="6" cellpadding="4">
                        <h:outputLabel for="itNumDocumento" styleClass="label" value="#{i18n['cliente.nro.documento']}"/>
                        <p:inputText id="itNumDocumento" label="#{i18n['cliente.nro.documento']}"  onkeypress="return fn_validaTecla('entero',this)"
                                     value="#{clienteMBean.dto.numeroDocumento}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="20" maxlength="20" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel for="itTipoDocumento" styleClass="label" value="#{i18n['cliente.tipo.documento']}"/>
                        <p:selectOneMenu id="itTipoDocumento" value="#{clienteMBean.dto.tipoDocumentoDto}"  converter="parametroConvert"  disabled="#{sessionMBean.accion == applicationMBean.ver}"                               
                                         style="#{applicationMBean.estiloObligatorio}" required="true">
                            <f:selectItems value="#{clienteMBean.listaTipoDocumento}" var="parametroDto"  itemLabel="#{parametroDto.descripcion}" itemValue="#{parametroDto}" />                        
                        </p:selectOneMenu>

                        <h:outputLabel for="itNombres" styleClass="label" value="#{i18n['cliente.nombres']}"/>
                        <p:inputText id="itNombres" label="#{i18n['cliente.nombres']}"
                                     value="#{clienteMBean.dto.nombres}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="100" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itAppPaterno" styleClass="label" value="#{i18n['cliente.apellido.paterno']}"/>
                        <p:inputText id="itAppPaterno" label="#{i18n['cliente.apellido.paterno']}"
                                     value="#{clienteMBean.dto.apellidoPaterno}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="50" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itAppMaterno" styleClass="label" value="#{i18n['cliente.apellido.materno']}"/>
                        <p:inputText id="itAppMaterno" label="#{i18n['cliente.apellido.materno']}"
                                     value="#{clienteMBean.dto.apellidoMaterno}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="50" minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel for="itSexo" styleClass="label" value="#{i18n['cliente.sexo']}"/>
                        <p:selectOneRadio id="itSexo" value="#{clienteMBean.dto.sexo}"  style="#{applicationMBean.estiloTitulo}" disabled="#{sessionMBean.accion == applicationMBean.ver}">  
                            <f:selectItem itemLabel="#{i18n['cliente.sexo.masculino']}" itemValue="M"  />  
                            <f:selectItem itemLabel="#{i18n['cliente.sexo.femenino']}" itemValue="F"   /> 
                        </p:selectOneRadio>
                        
                        <h:outputLabel for="itEdad" styleClass="label" value="#{i18n['cliente.edad']}"/>
                        <p:inputText id="itEdad" label="#{i18n['cliente.edad']}"  onkeypress="return fn_validaTecla('entero',this)"
                                     value="#{clienteMBean.dto.edad}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="10" maxlength="2" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="2" minimum="1"/>
                        </p:inputText>                                                

                        <h:outputLabel for="itTelDomiciliar" styleClass="label" value="#{i18n['cliente.telefono.domiciliar']}"/>
                        <p:inputText id="itTelDomiciliar" label="#{i18n['cliente.telefono.domiciliar']}"
                                     value="#{clienteMBean.dto.telefonoDomiciliar}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itDirDomiciliar" styleClass="label" value="#{i18n['cliente.direccion.domiciliar']}"/>
                        <p:inputText id="itDirDomiciliar" label="#{i18n['cliente.direccion.domiciliar']}"
                                     value="#{clienteMBean.dto.direccionDomiciliar}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="500" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itRefDomiciliar" styleClass="label" value="#{i18n['cliente.referencia.domiciliar']}"/>
                        <p:inputText id="itRefDomiciliar" label="#{i18n['cliente.referencia.domiciliar']}"
                                     value="#{clienteMBean.dto.referenciaDomiciliar}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="500" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itTelLaboral" styleClass="label" value="#{i18n['cliente.telefono.laboral']}"/>
                        <p:inputText id="itTelLaboral" label="#{i18n['cliente.telefono.laboral']}"
                                     value="#{clienteMBean.dto.telefonoLaboral}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itDirLaboral" styleClass="label" value="#{i18n['cliente.direccion.laboral']}"/>
                        <p:inputText id="itDirLaboral" label="#{i18n['cliente.direccion.laboral']}"
                                     value="#{clienteMBean.dto.direccionLaboral}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="500" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itRefLaboral" styleClass="label" value="#{i18n['cliente.referencia.laboral']}"/>
                        <p:inputText id="itRefLaboral" label="#{i18n['cliente.referencia.laboral']}"
                                     value="#{clienteMBean.dto.referenciaLaboral}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="500" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itTelCelular1" styleClass="label" value="#{i18n['cliente.telefono.celular1']}"/>
                        <p:inputText id="itTelCelular1" label="#{i18n['cliente.telefono.celular1']}"
                                     value="#{clienteMBean.dto.telefonoCelular1}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itTelCelular2" styleClass="label" value="#{i18n['cliente.telefono.celular2']}"/>
                        <p:inputText id="itTelCelular2" label="#{i18n['cliente.telefono.celular2']}"
                                     value="#{clienteMBean.dto.telefonoCelular2}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel for="itTelOtro1" styleClass="label" value="#{i18n['cliente.telefono.otro.1']}"/>
                        <p:inputText id="itTelOtro1" label="#{i18n['cliente.telefono.otro.1']}"
                                     value="#{clienteMBean.dto.telOtro1}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel for="itTelOtro2" styleClass="label" value="#{i18n['cliente.telefono.otro.2']}"/>
                        <p:inputText id="itTelOtro2" label="#{i18n['cliente.telefono.otro.2']}"
                                     value="#{clienteMBean.dto.telOtro2}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>
                        
                        <h:outputLabel for="itTelOtro3" styleClass="label" value="#{i18n['cliente.telefono.otro.3']}"/>
                        <p:inputText id="itTelOtro3" label="#{i18n['cliente.telefono.otro.3']}"
                                     value="#{clienteMBean.dto.telOtro3}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itTelContesta" styleClass="label" value="#{i18n['cliente.telefono.contesta']}"/>
                        <p:inputText id="itTelContesta" label="#{i18n['cliente.telefono.contesta']}"
                                     value="#{clienteMBean.dto.telefonoContesta}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>                 

                        <h:outputLabel for="itFecNacimiento" value="#{i18n['cliente.fecha.nacimiento']}" styleClass="label"/>
                        <p:calendar id="itFecNacimiento" value="#{clienteMBean.dto.fechaNacimiento}" label="#{i18n['cliente.fecha.nacimiento']}" pattern="#{applicationMBean.formatoFecha}"  required="true"
                                    style="#{applicationMBean.estiloObligatorio}" disabled="#{sessionMBean.accion == applicationMBean.ver}"> 
                        </p:calendar>

                        <h:outputLabel for="itUbigeo" value="#{i18n['cliente.ubigeo']}" styleClass="label"/>
                        <p:autoComplete id="itUbigeo" value="#{clienteMBean.dto.ubigeoDto}"  completeMethod="#{clienteMBean.autoCompletarUbigeo}"
                                        label="#{i18n['cliente.ubigeo']}" maxResults="10" minQueryLength="#{applicationMBean.minQueryLengthAutoComplete}" queryDelay="1" 
                                        converter="ubigeoConvert" var="sn" itemLabel="#{sn.descripcion}" itemValue="#{sn}" size="50" forceSelection="true">
                            <p:column style="#{applicationMBean.estiloObligatorio}" > 
                                #{sn.descripcion}
                            </p:column> 
                        </p:autoComplete>
                        
                        <h:outputLabel for="itRuc" styleClass="label" value="#{i18n['cliente.ruc']}"/>
                        <p:inputText id="itRuc" label="#{i18n['cliente.ruc']}"
                                     value="#{clienteMBean.dto.empRuc}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="30" styleClass="txtCampoObligatorio" onkeypress="return fn_validaTecla('entero',this)">
                            <f:validateLength maximum="20" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itRazonSocial" styleClass="label" value="#{i18n['cliente.razon.social']}"/>
                        <p:inputText id="itRazonSocial" label="#{i18n['cliente.razon.social']}"
                                     value="#{clienteMBean.dto.empRazonSocial}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="50" minimum="1"/>
                        </p:inputText>

                        <h:outputLabel for="itEmpDireccion" styleClass="label" value="#{i18n['cliente.empresa.direccion']}"/>
                        <p:inputText id="itEmpDireccion" label="#{i18n['cliente.empresa.direccion']}"
                                     value="#{clienteMBean.dto.empDireccion}" readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                     required="true" size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="50" minimum="1"/>
                        </p:inputText>       
                        
                        <h:outputLabel for="itEmpUbigeo" value="#{i18n['cliente.empresa.ubigeo']}" styleClass="label"/>
                        <p:autoComplete id="itEmpUbigeo" value="#{clienteMBean.dto.empUbigeoDto}"  completeMethod="#{clienteMBean.autoCompletarUbigeo}"
                                        label="#{i18n['cliente.empresa.ubigeo']}" maxResults="10" minQueryLength="#{applicationMBean.minQueryLengthAutoComplete}" queryDelay="1" 
                                        converter="ubigeoConvert" var="sn" itemLabel="#{sn.descripcion}" itemValue="#{sn}" size="50" forceSelection="true">
                            <p:column style="#{applicationMBean.estiloObligatorio}" > 
                                #{sn.descripcion}
                            </p:column> 
                        </p:autoComplete>
                    </h:panelGrid>

                    <f:facet name="footer">
                        <p:commandButton title="#{i18n['general.button.guardar.tip']}" accesskey="#{applicationMBean.keyGuardar}" ajax="false"
                                         icon="ui-icon ui-icon-disk" rendered="#{sessionMBean.accion != applicationMBean.ver}"
                                         onclick="return confirm('#{i18n.general_mensaje_confirmacion}');"
                                         value="#{i18n['general.button.guardar']}" 
                                         style="#{applicationMBean.estilosBtnGuardar}"
                                         action="#{clienteMBean.guardar}">                                    
                        </p:commandButton>

                        <p:commandButton title="#{i18n['general.button.atras.tip']}" accesskey="#{applicationMBean.keyRetroceder}" ajax="false"
                                         icon="ui-icon ui-icon-arrowreturnthick-1-w" immediate="true"
                                         style="#{applicationMBean.estilosBtnRetroceder}"
                                         value="#{i18n['general.button.atras']}" 
                                         action="#{clienteMBean.retroceder}">                                    
                        </p:commandButton>
                    </f:facet>
                </p:panel>
            </h:form>
        </ui:define>
    </ui:composition>
</html>